Array Functions
PHP Manual

array_udiff_assoc

(PHP 5)

array_udiff_assocComputa la diferencia entre matrices con un chequeo de índices adicional, comparando los datos con una llamada de retorno

Descripción

array array_udiff_assoc ( array $matriz1 , array $matriz2 [, array $ ... ], callback $func_comparacion_datos )

Computa la diferencia de matrices con un chequeo de índices adicional, comparando los datos por medio de una función llamada de retorno.

Note: Por favor note que esta función sólo analiza una dimensión de una matriz n-dimensional. Por supuesto, puede analizar dimensiones más profundas usando, por ejemplo, array_udiff_assoc($matriz1[0], $matriz2[0], "func_alguna_comparacion");.

Lista de parámetros

matriz1

La primera matriz.

matriz2

La segunda matriz.

func_comparacion_datos

La función usada como llamada de retorno para la comparación.

Para la comparación es usada la llamada de retorno entregada por el usuario. Ésta debe devolver un entero menor que, igual, o mayor que cero si el primer argumento es considerado como menor, igual, o mayor que el segundo, respectivamente.

Valores retornados

array_udiff_assoc() devuelve un array que contiene todos los valores de matriz1 que no están presentes en ninguno de los otros argumentos. Note que las claves son usadas en la comparación, a diferencia de array_diff() y array_udiff(). La comparación entre datos de las matrices es realizada usando una llamada de retorno especificada por el usuario. En este sentido, el comportamiento de esta función es opuesto al de array_diff_assoc(), la cual usa una función interna para la comparación.

Ejemplos

Example #1 Ejemplo de array_udiff_assoc()

<?php
class cr {
    private 
$miembro_privado;
    function 
cr($val)
    {
        
$this->miembro_privado $val;
    }

    static function 
func_comp_cr($a$b)
    {
        if (
$a->miembro_privado === $b->miembro_privado) return 0;
        return (
$a->miembro_privado $b->miembro_privado)? 1:-1;
    }
}

$a = array("0.1" => new cr(9), "0.5" => new cr(12), => new cr(23), 1=> new cr(4), => new cr(-15),);
$b = array("0.2" => new cr(9), "0.5" => new cr(22), => new cr(3), 1=> new cr(4), => new cr(-15),);

$resultado array_udiff_assoc($a$b, array("cr""func_comp_cr"));
print_r($resultado);
?>

El resultado del ejemplo seria:

Array
(
    [0.1] => cr Object
        (
            [miembro_privado:private] => 9
        )

    [0.5] => cr Object
        (
            [miembro_privado:private] => 12
        )

    [0] => cr Object
        (
            [miembro_privado:private] => 23
        )
)

En nuestro ejemplo anterior puede observar la pareja "1" => new cr(4) presente en ambas matrices y por lo tanto no hace parte de la salida de la función.

Ver también


Array Functions
PHP Manual